package resource;

import java.io.FileReader;
import java.util.ArrayList;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.InputSource;

import resource.handler.MapHandler;
import map.Map;

/**
 * Gestionnaire de carte
 * @author Kent
 *
 */
public class MapManager {
	ArrayList<Map> l_map;
	
	/**
	 * Gestionnaire de carte
	 * @param file : fichier xml de la map
	 */
	public MapManager(String file){
		l_map = new ArrayList<Map>();
	    javax.xml.parsers.SAXParserFactory spf = SAXParserFactory.newInstance();
	    spf.setValidating(false);
	    javax.xml.parsers.SAXParser sp;
		try {
			sp = spf.newSAXParser();
		    org.xml.sax.InputSource input = new InputSource(new FileReader(file));
		    MapHandler handler = new MapHandler(l_map);
		    sp.parse(input, handler);
		} catch (Exception e) {
			e.printStackTrace();
		};
	}
	
	/**
	 * Renvoie la map selon l'index
	 * @param index : position de la map
	 * @return
	 */
	public Map getMap(int index){
		return l_map.get(index);
	}
	
	/**
	 * Renvoie la map selon son nom (UNIQUE)
	 * @param name : nom de la map
	 * @return
	 */
	public Map getMap(String name){
		for(Map m : l_map){
			if(m.getName().equals(name)){
				return m;
			}
		}
		return null;
	}
}
